#ifndef FERMAT_LIBHTTP_CODEC_SETTING_ID_H_
#define FERMAT_LIBHTTP_CODEC_SETTING_ID_H_
#include <cstdint>
#include <utility>

namespace fermat {
namespace libhttp {

#define SPDY_SETTINGS_MASK (1<<16)

enum class SettingId {
	kNoSetting = 0,
	kHeaderTableSize = 1,
	kEablePush = 2,
	kMaxConcurrentStreams = 3,
	kInitWindowSize = 4,
	kMaxFrameSize = 5,
	kMaxHeaderListSize = 6,
	// form spdy ,most unused
	kSpdyUploadBandWidth = SPDY_SETTINGS_MASK | 1,
	kSpdyDownloadBandWidth = SPDY_SETTINGS_MASK | 2,
	kSpdyRoundTripTime = SPDY_SETTINGS_MASK | 3,
	kSpdyCurrentCwnd = SPDY_SETTINGS_MASK | 5,
	kSpdyDownloadReteansRate = SPDY_SETTINGS_MASK |6,
	kSpdyClientCertificateVectorSize = SPDY_SETTINGS_MASK | 8
};

extern const uint32_t kMaxSettingId;

typedef std::pair<SettingId, uint32_t> SettingPair;
}
#endif